#pragma once
#include<deque>


//namespace Xm
//{
//	template<class T,class Container = std::deque<T> >
//	class stack
//	{
//	public:
//		void push(const T& val)
//		{
//			_con.push_back(val);
//		}
//
//		void pop()
//		{
//			_con.pop_back();
//		}
//		
//		bool empty() const
//		{
//			return _con.empty();
//		}
//
//		T& top()
//		{
//			return _con.back();
//		}
//
//		const T& top() const
//		{
//			return _con.back();
//		}
//
//		size_t size()const
//		{
//			return _con.size();
//		}
//
//		
//	private:
//		Container _con;
//	};
//}



namespace bite
{
	template<class T>
	class stack
	{
	public:
		stack() {}
		void push(const T& x) 
		{ 
			_c.push_back(x); 
		}
		void pop() 
		{ 
			_c.pop_back(); 
		}
		T& top() 
		{ 
			return _c.back(); 
		}
		const T& top()const 
		{ 
			return _c.back();
		}
		size_t size()const 
		{ 
			return _c.size(); 
		}
		bool empty()const 
		{ 
			return _c.empty(); 
		}
	private:
		std::vector<T> _c;
	};
}